home *** CD-ROM | disk | FTP | other *** search
/ BBS Toolkit / BBS Toolkit.iso / doors_1 / dframe41.zip / DFRAME.DOC < prev    next >
Text File  |  1993-03-24  |  64KB  |  1,215 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.                                D O O R F R A M E
  17.                                   Version 4.1
  18.  
  19.                         A BBS Doors Development Library
  20.  
  21.                             Copyright (c) 1990-1993
  22.                                 by Ted Freeman
  23.                              All rights reserved.
  24.  
  25.  
  26.                                Support board is:
  27.  
  28.                                MicroNet PCBoard
  29.                           615-690-0428 USR DS 16.8K
  30.  
  31.  
  32.  
  33. DOORFRAME v4.1 - Users Guide - Page i
  34.  
  35.  
  36.                                 C O N T E N T S
  37.                                =================
  38.  
  39.         Warranty ............................................ ii
  40.         Copyright notice .................................... ii
  41.         Distribution ........................................ ii
  42.         Description ......................................... ii
  43.         BOX.IT .............................................. 1
  44.         BACK.SPACE .......................................... 2
  45.         CLREOL .............................................. 2
  46.         CLRMOL .............................................. 2
  47.         CLRSOL .............................................. 2
  48.         CLRSCRN ............................................. 2
  49.         DE.LAY .............................................. 2
  50.         DETECT.ANSI ......................................... 2
  51.         DIS.PLAY ............................................ 3
  52.         ENTER ............................................... 4
  53.         EXISTS .............................................. 4
  54.         EXIT.DOOR ........................................... 4
  55.         IN.PUT .............................................. 4
  56.         INITIALIZE .......................................... 5
  57.         LINES ............................................... 5
  58.         MAKE.BLT ............................................ 5
  59.         MAKE.BLT.CURRENT .................................... 6
  60.         MORE ................................................ 6
  61.         MUSIC ............................................... 6
  62.         OUT.PUT ............................................. 6
  63.         SEND ................................................ 6
  64.         SENDANSI ............................................ 7
  65.         SHOW.BLT ............................................ 7
  66.         COLOR TABLE ......................................... 8
  67.         CONFIGURATION FILE FORMAT ........................... 9
  68.         PCBOARD.SYS VARIABLES ............................... 10
  69.         USERS.SYS VARIABLES ................................. 12
  70.         DOOR.SYS VARIABLES .................................. 13
  71.         USERINFO.DAT VARIABLES .............................. 15
  72.         DORINFOx.DEF VARIABLES .............................. 16
  73.         CALLINFO.BBS VARIABLES .............................. 16
  74.         SFDOORS.DAT VARIABLES ............................... 18
  75.         CHAIN.TXT VARIABLES ................................. 20
  76.         MISCELLANEOUS NOTES ................................. 21
  77.  
  78.  
  79. DOORFRAME v4.1 - Users Guide - Page ii
  80.  
  81.  
  82.                                    Warranty
  83.  
  84.     This product is provided "as is" without warranty of any kind. The entire
  85.     risk as to the results and  performance of the program is assumed by you.
  86.     Futhermore, the  author does  not warrant, guarantee, or  make any  other
  87.     representations regarding  the use of,  or the  results of the use of the
  88.     program,  and you  rely on the  program and  results  solely at  your own
  89.     risk.  The author  cannot and  will not accept  responsibility for system
  90.     damage, loss of profit, or any other special, consequential or incidental 
  91.     damages  resulting  from  the  use  or  inability  to  use this  product.
  92.  
  93.                                    Copyright
  94.  
  95.     DOORFRAME Copyright (c) 1990-93 by  Ted Freeman  is being distributed as
  96.     Shareware. Under this concept you may use the  SHAREWARE  (unregistered)
  97.     version for a reasonable period of  time for evaluation  after which you
  98.     must either register your copy or discontinue  usage.
  99.  
  100.  
  101.                                  Distribution
  102.  
  103.     You  are encouraged to distribute DOORFRAME provided that all files
  104.     contained in the archive are distributed in their original and
  105.     unmodified state.
  106.  
  107.                                   Description
  108.     
  109.     DOORFRAME is a subroutine library for developing online BBS Doors for
  110.     systems that are compatible with PCBOARD.SYS, USERS.SYS, DOOR.SYS,
  111.     CALLINFO.BBS, USERINFO.DAT, SFDOORS.DAT, GTUSER.DAT, TRIBBS.SYS, 
  112.     CHAIN.TXT or DORINFOx.DEF for interfacing to the BBS.
  113.  
  114.     DoorFrame was written for QUICKBASIC (tm) 4.5 and is not recommended for
  115.     use with earlier versions of the compiler. DoorFrame also utilizes some of
  116.     the routines contained in Tom Hanlin's PBClone library. The COM routines
  117.     are handled by the QBSerial I/O library.
  118.  
  119.  
  120. DOORFRAME v4.1 - Users Guide - Page 1
  121.  
  122.  
  123.                               DOORFRAME ROUTINES
  124.                              ====================
  125.  
  126. ------------------------------------------------------------------------------
  127. NOTE: 
  128. Since the subroutines are DECLAREd in DFRAME.INC (you DID $INCLUDE: it didn't 
  129. you?) you should not use the CALL statement. Type the name of the subroutine 
  130. and list it's parameters (if any) without the enclosing parentheses.
  131. For example:
  132.  
  133. DIS.PLAY MSG$, FG%, BG%, BLINK%, BELL%, XPOS%, YPOS%, NL%, CENTER%, CAPS%, CODES%
  134.  
  135. The FUNCTIONs still require the enclosing parentheses.
  136. ------------------------------------------------------------------------------
  137.  
  138. SUBROUTINE: 
  139. BOX.IT (SROW%,SCOL%,EROW%,ECOL%,BTYPE%,BFG%,BBG%,FFG%,FBG%,FCHAR%,SHADOW%,TITLE$,HFG%,HBG%)
  140. PARAMETERS: SROW%    - ROW the box is to start at. Valid numbers are 1 - 22.
  141.                        Accepts an INTEGER number or variable.
  142.             SCOL%    - COLUMN the box is to start at. Valid numbers are 1 - 79.
  143.                        Accepts an INTEGER number or variable.
  144.             EROW%    - ROW the box is to end at. Valid numbers are 2 - 23.
  145.                        Accepts an INTEGER number or variable.
  146.             ECOL%    - COLUMN the box is to end at. Valid numbers are 2 - 80.
  147.                        Accepts an INTEGER number or variable.
  148.             BTYPE%   - Type of border. Accepts an INTEGER number or variable.
  149.                          0 = No border (spaces all the way around).
  150.                          1 = Single line all the way around.
  151.                          2 = Double line all the way around.
  152.                          3 = Double line on sides, single on top and bottom.
  153.                          4 = Single line on sides, double on top and bottom.
  154.             BFG%     - Foreground color of the border. (See color table)
  155.                        Accepts an INTEGER number or variable.
  156.             BBG%     - Background color of the border. (See color table)
  157.                        Accepts an INTEGER number or variable.
  158.             FFG%     - Foreground color of the box fill characters.
  159.                        Accepts an INTEGER number or variable.
  160.             FBG%     - Background color of the box fill characters.
  161.                        Accepts an INTEGER number or variable.
  162.             FCHAR%   - ASCII number of the character to fill box with.
  163.                        EX: 32 = SPACE, 65 = A, 206 = ╬
  164.             SHADOW%  - 0 = no Shadow, 1 - 7 = Background color of the Shadow. 
  165.                        This will put a Shadow on the right and bottom edges 
  166.                        of the box.
  167.             TITLE$   - Displays a title centered on the top border.
  168.                        Accepts a STRING variable or QUOTED TEXT.
  169.             HFG%     - Foreground color of TITLE$
  170.             HFG%     - Background color of TITLE$
  171.  
  172. DESCRIPTION: Draws a BOX with various style borders. The inside of the
  173.              BOX may be filled with any ASCII character you choose. The
  174.              upper left corner of the screen is ROW 1, COLUMN 1 and the
  175.              bottom right is ROW 23, COLUMN 80.
  176.  
  177.  
  178. DOORFRAME v4.1 - Users Guide - Page 2
  179.  
  180. SUBROUTINE: BACK.SPACE ROW%, COL%, NUM%
  181. PARAMETERS: ROW%, COL%, NUM%
  182. DESCRIPTION: Backspaces NUM% from the ROW% and COL% specified.
  183.  
  184.  
  185. SUBROUTINE: CLREOL
  186. PARAMETERS: XPOS%, YPOS%, BGC%
  187. DESCRIPTION: Clears from the specified row and column to the end of that
  188.              line. The line is cleared in whatever color is specified in
  189.              the BGC% parameter. NOTE: Does not work in non-ANSI.
  190.  
  191. SUBROUTINE: CLRMOL XPOS%, YPOS%, LENGTH%, BGC%
  192. PARAMETERS: XPOS%, YPOS%, LENGTH%, BGC%
  193. DESCRIPTION: Clears from the specified row and column for the number of
  194.              columns given in LENGTH%. The line is cleared in whatever
  195.              color is specified in the BGC% parameter.
  196.              NOTE: Does not work in non-ANSI.
  197.  
  198. SUBROUTINE: CLRSOL XPOS%, YPOS%, BGC%
  199. PARAMETERS: XPOS%, YPOS%, BGC%
  200. DESCRIPTION: Clears from the specified row and column to the start of that
  201.              line. The line is cleared in whatever color is specified in
  202.              the BGC% parameter. NOTE: Does not work in non-ANSI.
  203.  
  204. SUBROUTINE: CLRSCRN
  205. PARAMETERS: BGC%
  206. DESCRIPTION: Clears both the LOCAL (if ON) and REMOTE displays in the back-
  207.              ground color of your choice. Range is 0 - 7. ANSI only.
  208.  
  209. SUBROUTINE: DE.LAY (SEC%)
  210. PARAMETERS: SEC%, 1, 2, Etc.
  211. DESCRIPTION: Pauses your program for the number of seconds in SEC%. Accepts
  212.              INTEGER number or variable.
  213.  
  214.  
  215. SUBROUTINE: DETECT.ANSI
  216. PARAMETERS: None
  217. DESCRIPTION: This routine will determine if the remote system has ANSI
  218.              capability. If the remote system is ANSI compatible, the
  219.              GRAPHICS% variable will be set equal to -1 otherwise it is
  220.              set to 0. This routine does not control whether COLOR is used
  221.              or not, see the MODE% variable for that.
  222.  
  223.  
  224. DOORFRAME v4.1 - Users Guide - Page 3
  225.  
  226. SUBROUTINE: 
  227. DIS.PLAY MSG$,FG%,BG%,BLINK%,BELL%,XPOS%,YPOS%,NL%,CENTER%,CAPS%, CODES%
  228. PARAMETERS: 
  229. MSG$     - Text to be printed in either variable or quoted form. 
  230.            Example: "Print this" or MSG$ = "Print this".
  231. FG%      - Foreground color (0 - 15) Of the text. Can be in INTEGER number or
  232.            INTEGER variable form. Example: FG% = 1, 1, BLUE (See Color Table)
  233. BG%      - Background color (0 - 7) of text otherwise same as FG%
  234. BLINK%   - Enter 1 for blinking text or 0 for normal text.
  235. BELL%    - Enter 1 to sound a beep on the remote or 0 for no beep. Does not 
  236.            beep on the local computer.
  237. XPOS%    - Row number for cursor positioning. Valid numbers are 0 - 23 (status
  238.            line is on 24 - 25). Enter 0 to disable.
  239.            NOTE: XPOS% is ignored when GRAPHICS% = 0.
  240. YPOS%    - Column number for cursor positioning. Valid numbers are 0 - 80.
  241.            Enter 0 to disable. Accepts INTEGER number or INTEGER variable.
  242.            NOTE: YPOS% is ignored when GRAPHICS% = 0.
  243. NL%      - Enter 1 to send a CR/LF at the end of the line. Enter 0 to position
  244.            the cursor after the last character.
  245. CENTER%  - Enter 1 to center the line or 0 for no centering.
  246. CAPS%    - Enter 1 to convert text to all uppercase. Enter -1 to convert text
  247.            to all lowercase. Enter 0 for no case conversion.
  248. CODES%   - 0 = No color codes in this statement.
  249.            1 = Color codes are present in this statement.
  250.  
  251. DESCRIPTION: Displays text to both the Local (if on) and Remote screens.
  252.              Accepts the full ASCII charcter set (0 - 255). Supports ANSI
  253.              color and cursor positioning (XPOS%, YPOS%). DoorFrame features
  254.              auto-ANSI detection and will display in graphics mode if it
  255.              senses ANSI capability on the remote end.
  256.  
  257. ENHANCEMENTS: There are some special symbols available to make text blink
  258.              in the middle of a line in any color you wish. For example:
  259.  
  260.              DIS.PLAY "This will %{Blink Yellow{", LWHITE, BLACK, 0, 0,......
  261.  
  262.              Note the {'s before and after Blink Yellow. They tell the routine
  263.              to display the text in between in yellow and blinks because 
  264.              of the % symbol. Without the % the text is displayed in yellow
  265.              but does not blink. The rest of the line is displayed in white
  266.              on black. The symbols and their corresponding colors are:
  267.                 ~ = Blue,  ` = Green,  @ = Cyan,  ^ = Red,  | = Magenta
  268.                 { = Yellow, and } = White 
  269.              Put a * in front of the first symbol to display in low intensity
  270.              colors. Ex: *}text} displays 'text' in low intensity white. And
  271.              %*}test} displays 'text' in low intensity white and blinks.
  272.              Please note that you must have called DETECT.ANSI before using
  273.              these symbols and the caller must be ANSI capable. Multiple codes
  274.              are allowed in one Dis.Play statement. See the included
  275.              DFDEMO.BAS file for examples on using this option.
  276.              If a particular Dis.Play statement does not contain any of these
  277.              color codes, then the Codes% parameter should contain a 0. This
  278.              will result in a significant increase in display speed since the
  279.              routine doesn't have to search for and strip these characters.
  280.  
  281. DOORFRAME v4.1 - Users Guide - Page 4
  282.  
  283. SUBROUTINE: ENTER
  284. PARAMETERS: None
  285. DESCRIPTION: Outputs a "Press <ENTER> to Continue" prompt and waits for the
  286.              response. If the caller is in graphics mode, this is centered
  287.              on line 23. In non-graphics mode it is centered 2 lines below
  288.              the last line printed.
  289.  
  290. FUNCTION: EXISTS (FILENAME$ + CHR$(0))
  291. PARAMETERS: ASCIIZ Filename
  292. DESCRIPTION: Checks to see if a file exists on disk. The passed parameter
  293.              MUST be an ASCIIZ filename (FILENAME$ + CHR$(0)). The function
  294.              returns 0 if the file exists or -1 if it does not.
  295.              Example: IF EXISTS (MYFILE$ + CHR$(0)) = 0 THEN
  296.                          PRINT "The file is there!"
  297.                       ELSE
  298.                          PRINT "File not found."
  299.                       END IF
  300.  
  301. SUBROUTINE: EXIT.DOOR (YN$)
  302. PARAMETERS: YN$, "Y", "N", "G"
  303. DESCRIPTION: VERY IMPORTANT! Always call this subroutine as the last thing
  304.              your program does. EXIT.DOOR updates the system files with any
  305.              changes that have been made, closes the files, etc.
  306.              You can toggle this ON, "Y" or OFF, "N" when you call EXIT.DOOR.
  307.              If you wish to allow the caller to log off from your Door, call
  308.              EXIT.DOOR "G". When you use EXIT.DOOR "G", DoorFrame returns a
  309.              DOS Error Level of 1 for Wildcat! systems and 62 for all others.
  310.  
  311. SUBROUTINE: 
  312. IN.PUT LENGTH%, WAITTIME&, IFG%, IBG%, AUTOCR%, Text$, TFG%, TBG%, X%, Y%, Show%
  313. PARAMETERS: LENGTH%   - Desired length of input.  0 = any length.
  314.             WAITTIME& - Number of seconds to wait for input. If ENTER is not
  315.                         pressed before this times out, control is passed back
  316.                         to the calling routine and RESPONSE$ will contain "-1"
  317.             IFG%      - Foreground color of the response (INTEGER).
  318.             IBG%      - Background color of the response (INTEGER).
  319.             AUTOCR%   - 1 = Automatic CR, 0 = Wait for ENTER to be pressed.
  320.             Text$     - Text to display (if any). Use "" for no display.
  321.             TFG%      - Foreground color of Text$
  322.             TBG%      - Background color of Text$
  323.             X%        - X coordinate to display text. 0 = current coordinate.
  324.             Y%        - Y coordinate to display text. 0 = current coordinate.
  325.             Show%     - 0 = Don't display response, 1 = Display response.
  326.  
  327. DESCRIPTION: 
  328. Gets a response from the caller which is returned in the variable RESPONSE$. 
  329. Passes ASCII characters in the range 32 - 127 and ignores all others unless 
  330. Hi.Ascii% = 1, in which case it accepts ASCII 32 - 255. IN.PUT also allows you
  331. to use HOT KEYS! If you are prompting for a Y/N you could do something like:
  332.    IN.PUT 1, 180, 12, 0, 1, "Is everything correct? (y/n) ", ,11, 0, 1, 1, 0
  333.    IF UCASE$(RESPONSE$) = "Y" THEN      Etc., Etc.
  334. As soon as the caller hit Y or N, the subroutine terminates without his having
  335. to hit ENTER (however IN.PUT always returns when ENTER is pressed). The
  336. response would not be displayed. The IN.PUT can also be used as a timed
  337. routine. In the example above, The routine would wait for 180 seconds. if it
  338. does not receive a keypress within that time, it returns to the calling routine
  339. and RESPONSE$ would contain a "-1". IN.PUT features word-wrap ability in both
  340. forward typing and while backspacing.
  341.  
  342. DOORFRAME v4.1 - Users Guide - Page 5
  343.  
  344. SUBROUTINE: INITIALIZE
  345. PARAMETERS: None
  346. DESCRIPTION: VERY IMPORTANT! You MUST make a call to INITIALIZE before your
  347.              code does anything. This subroutine opens the system files and
  348.              obtains all the information you will need to run your Door. It
  349.              first reads the configuration file you passed on the command
  350.              line, then it reads PCBOARD.SYS, PCBOARD.DAT, and USERS (for 
  351.              PCBoard) or DOOR.SYS. There are 3 variables that must be
  352.              populated before the call to INITIALIZE. 
  353.                 PROGNAME$ = "Name of your Door"
  354.                 EXENAME$ = "FILENAM"
  355.                 VERSION$ = " v0.0"
  356.                 INITIALIZE
  357.              PROGNAME$ and VERSION$ are displayed on the Status line after
  358.              the callers name. EXENAME$ must be populated if you plan to use
  359.              the high score bulletin generator. EXENAME$ is the filename of
  360.              your program minus the .EXE extension.
  361.          ->  NOTE: EXENAME$ MUST BE NO MORE THAN 7 CHARACTERS!
  362.  
  363. SUBROUTINE: LINES (SROW%,SCOL%,LEN%,DIR$,ENDS%,MID%,EFG%,EBG%,MFG%,MBG%)
  364. PARAMETERS: SROW%    - Row the line starts at. Valid numbers are 1 - 22.
  365.                        Accepts an INTEGER number or variable.
  366.             SCOL%    - Column the line starts at. Valid numbers are 1 - 79.
  367.                        Accepts an INTEGER number or variable.
  368.             LEN%     - Length of the line. Max. of 23 for vertical, 80 horiz.
  369.                        Accepts an INTEGER number or variable.
  370.             DIR$     - "H" = horizontal. "V" = vertical. Accepts a STRING
  371.                        variable or quoted text.
  372.             ENDS%    - If you are placing the line inside a box, you can
  373.                        make the ends of the line match the box border.
  374.                        Accepts an INTEGER number or variable.
  375.                          0 = No ends. (straight line only)
  376.                          1 = Single line.
  377.                          2 = Double line.
  378.             MID%     - Type of line. 1 = Single line. 2 = Double line.
  379.                        Accepts an INTEGER number or variable.
  380.             EFG%     - Foreground color of the ends (see color table).
  381.                        Accepts an INTEGER number or variable.
  382.             EBG%     - Background color of the ends (see color table).
  383.                        Accepts an INTEGER number or variable.
  384.             MFG%     - Foreground color of the line (see color table).
  385.                        Accepts an INTEGER number or variable.
  386.             MBG%     - Background color of the line (see color table).
  387.                        Accepts an INTEGER number or variable.
  388. DESCRIPTION: Draws either a vertical or horizontal line at the specified
  389.              location. 
  390.  
  391. SUBROUTINE: MAKE.BLT (HI.SCORE&)
  392. PARAMETERS: HI.SCORE&, 10, 10000, Etc.
  393. DESCRIPTION: This routine will write a hi-score bulletin listing the top ten
  394.              scores. The parameter passed must be a long integer (&). This
  395.              routine creates a file called FILENAME.BUL. The first line of
  396.              this .BUL file indicates the path to the actual BLT file. It
  397.              initially writes FILENAME.BLT. If you wish to have a different
  398.              filename (such as BLT1) you must edit this line. The filename
  399.              for your BLT file should be 7 characters or less because
  400.              DoorFrame also writes a graphics BLT and appends a G to the
  401.              filename. (You should also explain this to your user Sysops!)
  402.  
  403.  
  404. DOORFRAME v4.1 - Users Guide - Page 6
  405.  
  406. SUBROUTINE: MAKE.BLT.CURRENT (HI.SCORE&)
  407. PARAMETERS: HI.SCORE&, 10, 10000, Etc.
  408. DESCRIPTION: Same as MAKE.BLT except it posts CURRENT scores rather than
  409.              highest scores.
  410.  
  411. SUBROUTINE: MORE
  412. PARAMETERS: None
  413. DESCRIPTION: Outputs "Press <ENTER> to continue, or <E> to end" and waits
  414.              for a response. Check the variable RESPONSE$ for an "E" and
  415.              terminate the current routine if found. For example:
  416.                 MORE
  417.                 IF UCASE$(RESPONSE$) = "E" THEN
  418.                   Etc.. Etc.
  419.  
  420. SUBROUTINE: MUSIC (TUNE$)
  421. PARAMETERS: MUSIC CODES
  422. DESCRIPTION: Outputs music to the remote system. The TUNE$ parameter
  423.              contains the same codes you would normally use in the BASIC
  424.              PLAY statement. For example:
  425.               TUNE$ = "t110 l8 ms d4 mn o3 g a b o4 c ... "
  426.               MUSIC TUNE$
  427.              Since not all communications programs can handle music, you
  428.              should ask the user if he has music capabilities. If the
  429.              user can't handle music he will simply see the music codes
  430.              come across his screen (not a pretty sight!).
  431.  
  432. SUBROUTINE: OUT.PUT (LF%)
  433. PARAMETERS: LF%, 1, 2, Etc.
  434. DESCRIPTION: Outputs the specified number of CR/LF. Parameter is an INTEGER
  435.              number or an INTEGER variable. Ex: OUT.PUT 2
  436.  
  437.  
  438. SUBROUTINE: SEND (FILENAME$, YN%, CLR%)
  439. PARAMETERS: FILENAME$ - STRING variable or quoted text of file to SEND.
  440.             YN%       - 0 = Do not use the ENTER prompt after last page.
  441.                         1 = Use the ENTER prompt after last page.
  442.             CLR%      - 0 = Home cursor, do not clear screen.
  443.                         1 = Normal clear screen.
  444. DESCRIPTION: Sends the specified filename. This can be either an ASCII file
  445.              or an ANSI file. SEND first checks for the existance of the file
  446.              and either sends the file or reports "File not Found!". This is
  447.              handy for displaying Help files, Welcome screens, etc.
  448.        NOTE: When using The Draw to create ANSI screens, save the screen using
  449.              the block mode (ALT-B) as this seems to produce better results
  450.              than using the regular save function (ALT-S).
  451.  
  452.  
  453.  
  454.  
  455. DOORFRAME v4.1 - Users Guide - Page 7
  456.  
  457. SUBROUTINE: SENDANSI (FILENAME$, YN%)
  458. PARAMETERS: FILENAME$ - STRING variable or quoted text of file to send.
  459.             YN%       - 0 = Do not use the ENTER prompt after last page.
  460.                         1 = Use the ENTER prompt after last page.
  461.                         2 = Pause at end for Spacebar. Doesn't print anything
  462. DESCRIPTION: Sends the specified ANSI file if it exists. This routine does
  463.              not stop until the entire file has been sent. Pressing the
  464.              Spacebar during display aborts the file.
  465.  
  466.  
  467. SUBROUTINE: SHOW.BLT (YN$)
  468. PARAMETERS: YN$, "Y", "N"
  469. DESCRIPTION: Call this routine if your Door features a Hi-score bulletin. Make
  470.              sure you have called MAKE.BLT first! Best place to call this
  471.              is just before you call EXIT.DOOR. For example:
  472.               MAKE.BLT HI.SCORE&
  473.               SHOW.BLT "Y"
  474.               EXIT.DOOR "Y"
  475.              SHOW.BLT "Y" will ask if they want to see the Bulletin.
  476.              SHOW.BLT "N" displays the bulletin without asking.
  477.  
  478.  
  479. DOORFRAME v4.1 - Users Guide - Page 8
  480.  
  481.  
  482.                              C O L O R  T A B L E
  483.                             ======================
  484.  
  485. COLOR # - NAME       INTENSITY       FOREGROUND (FG%)     BACKGROUND (BG%)
  486. ---------------------------------------------------------------------
  487.  0 - BLACK              Low               X                   X
  488.  1 - BLUE                "                X                   X
  489.  2 - GREEN               "                X                   X
  490.  3 - CYAN                "                X                   X
  491.  4 - RED                 "                X                   X
  492.  5 - MAGENTA             "                X                   X
  493.  6 - YELLOW              "                X                   X
  494.  7 - WHITE               "                X                   X
  495.  8 - GRAY               High              X
  496.  9 - LBLUE               "                X
  497. 10 - LGREEN              "                X
  498. 11 - LCYAN               "                X
  499. 12 - LRED                "                X
  500. 13 - LMAGENTA            "                X
  501. 14 - LYELLOW             "                X
  502. 15 - LWHITE              "                X
  503.  
  504. The COLORs are defined as CONSTANT in the DFRAME.INC file so you may use
  505. either the actual color number, it's name or an INTEGER variable of your own
  506. choosing when CALLing the DIS.PLAY subroutine.
  507.  
  508.  
  509. DOORFRAME v4.1 - Users Guide - Page 9
  510.  
  511.  
  512.                               CONFIGURATION FILE
  513.                               ==================
  514.  
  515. The format of the configuration file used by Doors created with DoorFrame is:
  516.  
  517. C:\PCB\PCBOARD.SYS              <- For PCBoard systems using PCBOARD.SYS only
  518. C|\PCB\USERS.SYS                <- For PCBoard systems using USERS.SYS
  519. C:\BBS\CALLINFO.BBS             <- For Wildcat! systems (prior to v3.0)
  520. C:\BBS\CHAIN.TXT                <- For WWIV systems
  521. C:\BBS\GTUSER.BBS               <- For GT Power systems
  522. C:\BBS\USERINFO.DAT             <- For Wildcat! 3.x+ systems.
  523. C:\BBS\DOOR.SYS                 <- For systems that support DOOR.SYS
  524. C:\BBS\DORINFOx.DEF             <- For QBBS/RBBS/RA. Replace x with Node #.
  525. C:\BBS\SFDOORS.DAT              <- For Spitfire systems.
  526. C:\BBS\TRIBBS.SYS               <- For TriBBS systems.
  527. MicroNet                        <- BBS name
  528. Ted                             <- Sysop's first name
  529. Freeman                         <- Sysop's last name
  530.   .                             <- The Configuration file is left open as #1
  531.   .                                so you may add whatever is necessary.
  532.  
  533. NOTE: See Miscellaneous Notes for info on using Environment Variables.
  534.  
  535. NOTE: There are 2 additional lines necessary when using GTUSER.BBS. Since
  536.       this file does not provide the ComPort% and NodeNum% variables, advise
  537.       your Door users to add them to this .CFG file on lines 5 and 6
  538.       respectively. Both variables will default to 1.
  539.  
  540.  
  541. DOORFRAME v4.1 - Users Guide - Page 10
  542.  
  543.                   VARIABLES AVAILABLE WHEN USING PCBOARD.SYS
  544.                   ==========================================
  545.  
  546.         ALLOWEDBYTES&             Allowed D/L bytes from the PWRD file.
  547.                                   This number has already been multipled
  548.                                   by 1024 so it will be in actual bytes
  549.                                   rather than Kilobytes allowed.
  550.       * BAUDCONN$                 Connect rate of caller or "LOCAL"
  551.       * BAUDOPEN$                 Port opening BPS
  552.       * BBSSYS$                   Name of the BBS
  553.         CALLALARM%                Caller alarm status.     -1=ON, 0=OFF
  554.       * CALLERSLOC$               Location of CALLERSx log
  555.         CHATSTATUS$               Chat mode status. "U" or "A"
  556.       * CITY$                     Callers city and state
  557.       * CNAMESLOC$                Location of CNAMES
  558.       * COMPORT%                  COM port number
  559.         CONFREG$                  Conferences registered in
  560.         DISPLAY%                  Local display status.    -1=ON, 0=OFF
  561.         DOWNLOADS&                Number of downloads made
  562.       * ECC%                      Error corrected connect.  1=YES, 0=NO
  563.         EXENAME$                  Name of .EXE (Programmer supplied)
  564.         EXPERT$                   Expert mode - "Y" or "N"
  565.         EXPIRE$                   Callers expiration date
  566.       * FIRST$                    Callers first name
  567.         GRAPHICS%                 Graphics mode status.    -1=ON, 0=OFF
  568.                                   Determines if the caller is ANSI compatible
  569.                                   If your door requires the use of cursor
  570.                                   positioning and GRAPHICS% = 0 then you
  571.                                   should kick him back out of the door.
  572.       * HPHONE$                   Callers home phone number
  573.       * LASTON$                   Date caller last logged on (MM-DD-YY)
  574.         LEVEL&                    Callers security level
  575.       * LOCALUSR%                 -1 = LOCAL mode, 0 = Online
  576.       * LOGONHRS$                 Time caller logged on in HH:MM format
  577.       * LOGONMINS%                Time caller logged on in minutes
  578.         MODE%                     0 = Non-color, -1 = color is on. Default
  579.                                   is the BBS setting. You may force color
  580.                                   by setting this to -1.
  581.       * NAME$                     Callers full name
  582.       * NETWORK%                  1 = BBS is networked, 0 = no network
  583.       * NODENUM%                  Node number
  584.         OWNER$                    Name DoorFrame is registered to (if any).
  585.         PASSWORD$                 Password of caller
  586.         PAGEBELL%                 Page bell status.        -1=ON, 0=OFF
  587.         PAGELEN%                  Callers page length
  588.       * PCBDAT$                   Location of PCBOARD.DAT
  589.       * PCBOARD%                  1 = PCBoard, 0 = non-PCBoard
  590.         PRINTER%                  Printer status.          -1=ON, 0=OFF
  591.         PROGNAME$                 Name of DOOR (Programmer supplied)
  592.         PROTOCOL$                 Caller's default protocol (Z, X, etc.)
  593.         RESPONSE$                 Returned after a CALL to IN.PUT
  594.         SERIAL$                   Your DoorFrame serial #. String variable.
  595.       * SYSLOC$                   Location of system file. This contains the
  596.                                   path/filename of line 1 in the .CFG file.
  597.       * SYSOP%                    1 = SYSOP is using DOOR, 0 otherwise
  598.       * SYSOPFIRST$               Sysops first name
  599.  
  600.  
  601. DOORFRAME v4.1 - Users Guide - Page 11
  602.  
  603.  
  604.         SYSOPFLAG$                " ", "N"=Sysop Next, "X"=Exit to DOS
  605.       * SYSOPLAST$                Sysops last name
  606.       * SYSOPNAME$                Sysops first and last names
  607.         TIMEADJUST%               Use to adjust the callers remaining time
  608.                                   online. This variable adjusts the ELAPSED
  609.                                   time so if you wish to decrease his time,
  610.                                   give this a positive value.
  611.       * TIMEALWD%                 Minutes caller is allowed
  612.       * TIMELEFT%                 Time caller has left in minutes. Doorframe
  613.                                   calculates this so changing it has no effect
  614.       * TIMENOW%                  Current time in minutes (0 - 1440)
  615.       * TIMESON%                  Number of times on system
  616.         TIMEOUT%                  Programmer supplied keyboard timeout. 
  617.                                   Defaults to 300 (5 mins) if not specified. 
  618.                                   Has a minimum of 60 seconds. Maximum is 
  619.                                   32,767 since it's an integer.
  620.       * TIMEUSED%                 Time used so far today in minutes
  621.         UPLOADS&                  Number of uploads made
  622.       * USERCOMMENT$              User maintained comment
  623.       * USERSLOC$                 Location of USERS file
  624.       * USERNUM%                  Record number of caller
  625.         VERSION$                  DOOR version # (Programmer supplied)
  626.       * WPHONE$                   Callers work phone number
  627.  
  628. NOTES: Variables marked with '*' are provided for information only.
  629.  
  630.  
  631. DOORFRAME v4.1 - Users Guide - Page 12
  632.  
  633.  
  634.                    VARIABLES AVAILABLE WHEN USING USERS.SYS
  635.                    ========================================
  636.  
  637.         When using USERS.SYS, all variables contained in PCBOARD.SYS may
  638.         be used plus the following additional variables.
  639.  
  640.         DAILYDNLDBYTES&          Bytes downloaded so far today.
  641.         DELETEFLAG%              1 = delete this record, 0 = keep
  642.         EXPIREDLEVEL&            Expired Security level
  643.         LASTCONF%                Conference number last in.
  644.         LASTTIMEON$              Last time caller was on
  645.         MSGS.LEFT%               Number of messages posted
  646.         MSGS.READ%               Number of messages read
  647.         PCB.VERSION%             PCBoard version number (i.e. 1450)
  648.         TOTDNLDBYTES&            Total number of BYTES downloaded
  649.         TOTUPLDBYTES&            Total number of BYTES uploaded
  650.  
  651. NOTES: These variables are all passed back to PCBoard.
  652.  
  653.  
  654. DOORFRAME v4.1 - Users Guide - Page 13
  655.  
  656.                     VARIABLES AVAILABLE WHEN USING DOOR.SYS
  657.                     =======================================
  658.  
  659.     !   ALIAS$                    Callers alias/handle
  660.     ! * ANSISUPPORT$              Caller supports ANSI but in NG mode
  661.       * BAUDCONN$                 Connect rate of caller or "LOCAL"
  662.       * BAUDOPEN$                 Port opening BPS
  663.     ! * BBSCOLOR%                 BBS default color code (1-15)
  664.       * BBSSYS$                   Name of the BBS
  665.         BIRTHDATE$                Callers date of birth
  666.         CALLALARM%                Caller alarm status.     -1=ON, 0=OFF
  667.       * CITY$                     Callers city and state
  668.       * COMPORT%                  COM port number (0 - 15).
  669.         CONFREG$                  Conferences registered in
  670.         DAILY.BYTES.ALWD&         Daily download max. K limit
  671.         DISPLAY%                  Local display status.    -1=ON, 0=OFF
  672.     !   DOORS.OPENED%             Number of Doors caller has opened
  673.         DOWNLOADS&                Number of downloads made
  674.     ! * ECC%                      Error corrected connect.  1=YES, 0=NO
  675.         EXENAME$                  Name of .EXE (Programmer supplied)
  676.         EXFROM%                   Conference exited to Door from.
  677.         EXPERT$                   Expert mode - "Y" or "N"
  678.         EXPIRE$                   Callers expiration date
  679.     ! * EVENT$                    Event time (hh:mm)
  680.         GRAPHICS%                 Graphics mode status.    -1=ON, 0=OFF
  681.                                   Determines if the caller is ANSI compatible
  682.                                   If your door requires the use of cursor
  683.                                   positioning and GRAPHICS% = 0 then you
  684.                                   should kick him back out of the door.
  685.       * HPHONE$                   Callers home phone number
  686.       * LASTON$                   Date caller last logged on (MM-DD-YY)
  687.     !   LASTSCAN$                 Date of last directory/new files scan.
  688.         LEVEL&                    Callers security level
  689.       * LOCALUSR%                 -1 = LOCAL mode, 0 = Online
  690.       * LOGONHRS$                 Time caller logged on in HH:MM format
  691.       * LOGONMINS%                Time caller logged on in minutes
  692.     !   MAX.FILES%                Maximum daily files available
  693.     !   MINSCREDIT%               Time credits in minutes
  694.         MODE%                     0 = Non-color, -1 = color is on. Default
  695.                                   is the BBS setting. You may force color
  696.                                   by setting this to -1.
  697.     !   MSGS.LEFT%                Total messages left
  698.       * NAME$                     Callers full name
  699.     ! * NETWORK%                  1 = BBS is networked, 0 = no network
  700.       * NODENUM%                  Node number
  701.         DLTODAY&                  Files downloaded so far today
  702.         OWNER$                    Name DoorFrame is registered to (if any).
  703.         PAGEBELL%                 Page bell status.        -1=ON, 0=OFF
  704.         PAGELEN%                  Callers page length
  705.       * PARITY%                   Parity (word length?) (7 or 8)
  706.         PASSWORD$                 Password of caller
  707.       * PATHGEN$                  Path to the GEN directory
  708.       * PATHMAIN$                 Path to the MAIN directory
  709.         PRINTER%                  Printer status.          -1=ON, 0=OFF
  710.         PROGNAME$                 Name of DOOR (Programmer supplied)
  711.         PROTOCOL$                 Callers default protocol (Z, X, etc)
  712.         RESPONSE$                 Returned after a CALL to IN.PUT
  713.  
  714.  
  715. DOORFRAME v4.1 - Users Guide - Page 14
  716.  
  717.  
  718.         SECREM$                   Number of seconds remaining this call.
  719.         SERIAL$                   Your DoorFrame serial #. String variable.
  720.       * SYSLOC$                   Location of system file. This contains the
  721.                                   path/filename of line 1 in the .CFG file.
  722.       * SYSOP%                    1 = SYSOP is using DOOR, 0 otherwise
  723.       * SYSOPFIRST$               Sysops first name
  724.       * SYSOPLAST$                Sysops last name
  725.       * SYSOPNAME$                Sysops first and last names
  726.         TIMEADJUST%               Use to adjust the callers remaining time
  727.                                   online. This variable adjusts the ELAPSED
  728.                                   time so if you wish to decrease his time,
  729.                                   give this a positive value.
  730.     ! * TIMELASTCALL$             Time of last call (hh:mm)
  731.       * TIMELEFT%                 Time caller has left in minutes. Doorframe
  732.                                   calculates this so changing it has no effect
  733.       * TIMENOW%                  Current time in minutes (0 - 1440)
  734.         TIMEOUT%                  Programmer supplied. Defaults to 5 mins if
  735.                                   not specified. Has a minimum of one min.
  736.                                   No limit on maximum. 
  737.       * TIMESON%                  Number of times on system
  738.       * TIMEUSED%                 Time used so far today in minutes
  739.         TOTAL.BYTES.TODAY&        Daily download K total
  740.     !   TOTAL.KB.DL&              Total K bytes downloaded
  741.     !   TOTAL.KB.UL&              Total K bytes uploaded
  742.         UPLOADS&                  Number of uploads made
  743.     ! * USERCOMMENT$              User maintained comment
  744.       * USERNUM%                  Record number of caller
  745.         VERSION$                  DOOR version # (Programmer supplied)
  746.       * WPHONE$                   Callers work phone number
  747. NOTES: Variables marked with '*' are provided for information only.
  748.        Variables marked with '!' are available only in the 52 line version.
  749.  
  750.  
  751. DOORFRAME v4.1 - Users Guide - Page 15
  752.  
  753.  
  754.                   VARIABLES AVAILABLE WHEN USING USERINFO.DAT
  755.                   ===========================================
  756.  
  757.       * ACTIVE.MENU%              0=Main, 1=Msg, 2=File, 3=Sysop
  758.         ALIAS$                    Callers alias/handle
  759.       * ANSISUPPORT$              'Y' or 'N' for ANSI enabled.
  760.         BANKED.TIME%              Banked time. (DLT - MaxLogOn)
  761.       * BAUDCONN$                 Connect rate of caller or "LOCAL"
  762.       * COMMAND.LINE$             Started with a CommandLine switch. Y or N.
  763.       * DATABITS$                 Databits, 7 or 8.
  764.       * DOOR.LOGOFF$              Y or N. Set to Y if caller logged off from
  765.                                   inside the door.
  766.         DOOR.DL&                  Number of files DL'ed in the door.
  767.         DOOR.KB&                  Downloads in K, add to daily and total bytes
  768.       * ECC%                      Error corrected connect.  1=YES, 0=NO
  769.         LASTSCAN$                 Time/date of last new files scan
  770.       * LOGONTIMEDATE$            Time and date caller logged on to BBS
  771.       * NAME$                     Callers full name
  772.         SEC.LEVEL.NAME$           Security level name.
  773. NOTES: Variables marked with '*' are provided for information only.
  774.        All other variables are taken from the DOOR.SYS file.
  775.  
  776.  
  777.                   VARIABLES AVAILABLE WHEN USING DORINFOx.DEF
  778.                   ===========================================
  779.  
  780.       * BAUDRATE$                 Baud rate and parity of caller.
  781.                                   Ex. 2400 BAUD,N,8,1
  782.                                   NOTE: RBBS adds baud rate of BBS.
  783.       * BBSSYS$                   Name of the BBS
  784.       * CITY$                     Callers city and state
  785.       * COMPORT%                  COM port number (0 - 15).
  786.         DISPLAY%                  Defaults to -1 (ON).
  787.       * DORINFO13TH$              13th line available only on RBBS systems.
  788.         EXENAME$                  Name of .EXE (Programmer supplied)
  789.       * FIRST$                    Callers first name
  790.         GRAPHICS%                 Graphics mode status.    -1=ON, 0=OFF
  791.                                   Determines if the caller is ANSI compatible
  792.                                   If your door requires the use of cursor
  793.                                   positioning and GRAPHICS% = 0 then you
  794.                                   should kick him back out of the door.
  795.                                   Use DETECT.ANSI to determine this.
  796.       * LAST$                     Callers last name
  797.       * LASTON$                   Default 01-01-80 (not provided in DORINFO)
  798.         LEVEL&                    Callers security level
  799.       * LOCALUSR%                 -1 = LOCAL mode, 0 = Online
  800.         MODE%                     0 = Non-color, -1 = color is on. Default
  801.                                   is the BBS setting. You may force color
  802.                                   by setting this to -1.
  803.       * NAME$                     Callers full name
  804.         NETWORK$                  Network type. DoorFrame reads/writes as is.
  805.       * NODENUM%                  Number of this Node.
  806.         OWNER$                    Name DoorFrame is registered to (if any).
  807.         PROGNAME$                 Name of DOOR (Programmer supplied)
  808.         RESPONSE$                 Returned after a CALL to IN.PUT
  809.         SERIAL$                   Your DoorFrame serial #. String variable.
  810.  
  811.  
  812. DOORFRAME v4.1 - Users Guide - Page 16
  813.  
  814.       * SYSLOC$                   Location of system file. This contains the
  815.                                   path/filename of line 1 in the .CFG file.
  816.       * SYSOP%                    1 = SYSOP is using DOOR, 0 otherwise
  817.       * SYSOPFIRST$               Sysops first name
  818.       * SYSOPLAST$                Sysops last name
  819.       * SYSOPNAME$                Sysops first and last names
  820.         TIMEADJUST%               Use to adjust the callers remaining time
  821.                                   online. This variable adjusts the ELAPSED
  822.                                   time so if you wish to decrease his time,
  823.                                   give this a positive value.
  824.       * TIMELEFT%                 Time caller has left in minutes. Doorframe
  825.                                   calculates this so changing it has no effect
  826.       * TIMENOW%                  Current time in minutes (0 - 1440)
  827.         TIMEOUT%                  Programmer supplied. Defaults to 5 mins if
  828.                                   not specified. Has a minimum of one min.
  829.                                   No limit on maximum. 
  830.       * TIMESON%                  Defaults to 1 (Not provided in DORINFO)
  831.       * TIMEUSED%                 Time used so far today in minutes
  832.  
  833. NOTES: Variables marked with '*' are provided for information only.
  834.  
  835.                   VARIABLES AVAILABLE WHEN USING CALLINFO.BBS
  836.                   ===========================================
  837.  
  838.       * ALREADYCONNECTED$         "TRUE" or "FALSE"
  839.       * BAUDCONN$                 Connect rate of caller or "LOCAL"
  840.       * BBSSYS$                   Name of the BBS
  841.       * CITY$                     Callers city and state
  842.       * COMPORT%                  COM port number (0 - 15).
  843.         CONFREG$                  Conferences registered in (ABCD etc.)
  844.       * CONSOLE$                  "LOCAL" or "REMOTE"
  845.         DAILY.BYTES.ALWD&         Daily download max. K limit
  846.       * DATABITS$                 7 or 8
  847.         DISPLAY%                  Local display status.    -1=ON, 0=OFF
  848.       * DOORNUMBER$               BBS number of this door?
  849.         EXENAME$                  Name of .EXE (Programmer supplied)
  850.       * ENTERDOOR$                Time caller entered door in HH:MM format.
  851.       * FIRST$                    Callers first name
  852.         GRAPHICS%                 Graphics mode status.    -1=ON, 0=OFF
  853.                                   Determines if the caller is ANSI compatible
  854.                                   If your door requires the use of cursor
  855.                                   positioning and GRAPHICS% = 0 then you
  856.                                   should kick him back out of the door.
  857.                                   Use DETECT.ANSI to determine this.
  858.       * LAST$                     Callers last name
  859.         LASTMSG$                  Last message read
  860.       * LASTONDATE$               Date and time of last call
  861.         LEVEL&                    Callers security level
  862.       * LOCALUSR%                 -1 = LOCAL mode, 0 = Online
  863.       * LOGONTIMEDATE$            Time and date caller logged on to BBS
  864.       * LOGONHRS$                 Time caller logged on in HH:MM format
  865.         MODE%                     0 = Non-color, -1 = color is on. Default
  866.                                   is the BBS setting. You may force color
  867.                                   by setting this to -1.
  868.       * MNP$                      "MNP/ARQ Connection" or "Normal Connection"
  869.       * NAME$                     Callers full name
  870.         DLTODAY&                  Files downloaded so far today
  871.  
  872.  
  873. DOORFRAME v4.1 - Users Guide - Page 17
  874.  
  875.         OWNER$                    Name DoorFrame is registered to (if any).
  876.         PASSWORD$                 Password of caller
  877.         PROGNAME$                 Name of DOOR (Programmer supplied)
  878.         RESPONSE$                 Returned after a CALL to IN.PUT
  879.         SERIAL$                   Your DoorFrame serial #. String variable.
  880.       * SYSLOC$                   Location of system file. This contains the
  881.                                   path/filename of line 1 in the .CFG file.
  882.       * SYSOP%                    1 = SYSOP is using DOOR, 0 otherwise
  883.       * SYSOPFIRST$               Sysops first name
  884.       * SYSOPLAST$                Sysops last name
  885.       * SYSOPNAME$                Sysops first and last names
  886.         TIMEADJUST%               Use to adjust the callers remaining time
  887.                                   online. This variable adjusts the ELAPSED
  888.                                   time so if you wish to decrease his time,
  889.                                   give this a positive value.
  890.       * TIMELEFT%                 Time caller has left in minutes. Doorframe
  891.                                   calculates this so changing it has no effect
  892.       * TIMENOW%                  Current time in minutes (0 - 1440)
  893.       * TIMEOFF$                  Time caller exited from the door.
  894.         TIMEOUT%                  Programmer supplied. Defaults to 5 mins if
  895.                                   not specified. Has a minimum of one min.
  896.                                   No limit on maximum. 
  897.       * TIMEUSED%                 Time used so far today in minutes
  898.       * USERNUM%                  Record number of caller
  899.  
  900. NOTES: Variables marked with '*' are provided for information only.
  901.  
  902.  
  903. DOORFRAME v4.1 - Users Guide - Page 18
  904.  
  905.  
  906.                   VARIABLES AVAILABLE WHEN USING SFDOORS.DAT
  907.                   ==========================================
  908.  
  909.         ANSION$                   "TRUE" or "FALSE"
  910.       * BAUDCONN$                 Connect rate of caller or "LOCAL"
  911.       * BBSDIR$                   Spitfire's home directory
  912.       * BBSSYS$                   Name of the BBS
  913.       * CITY$                     Callers city and state
  914.       * COMPORT%                  COM port number (0 - 15).
  915.         DAILY.BYTES.ALLOWED&      Maximum download BYTES per day
  916.         DISPLAY%                  Local display status.    -1=ON, 0=OFF
  917.         DLPERDAY&                 Number of downloads allowed per day
  918.         DLTODAY&                  Number of downloads made today
  919.         DOWNLOADS&                Number of downloads made
  920.       * ECC%                      Error corrected connect.  1=YES, 0=NO
  921.         EXENAME$                  Name of .EXE (Programmer supplied)
  922.         EXTRATIME&                Number of seconds gained since logon
  923.       * FIRST$                    Callers first name
  924.       * FRONTEND$                 "TRUE" or "FALSE" if booted from a
  925.                                   front end program.
  926.         GRAPHICS%                 Graphics mode status.    -1=ON, 0=OFF
  927.                                   Determines if the caller is ANSI compatible
  928.                                   If your door requires the use of cursor
  929.                                   positioning and GRAPHICS% = 0 then you
  930.                                   should kick him back out of the door.
  931.                                   Use DETECT.ANSI to determine this.
  932.       * HPHONE$                   Callers home phone number
  933.       * LAST$                     Callers last name
  934.         LASTMCONF$                Last message conference
  935.         LASTFAREA$                Last file area
  936.         LEVEL&                    Callers security level
  937.       * LOCALUSR%                 -1 = LOCAL mode, 0 = Online
  938.       * LOGONHRS$                 Time caller logged on in HH:MM format
  939.       * LOGONSECS&                Number of seconds since midnight
  940.                                   when caller logged on to the BBS.
  941.       * MAXBAUD$                  Maximum baud of the system
  942.         MODE%                     0 = Non-color, -1 = color is on. Default
  943.                                   is the BBS setting. You may force color
  944.                                   by setting this to -1.
  945.       * NAME$                     Callers full name
  946.       * NODENUM%                  Number of this Node.
  947.       * NODTELOCK$                "TRUE" or "FALSE" if configured for
  948.                                   software data flow control.
  949.         OWNER$                    Name DoorFrame is registered to (if any).
  950.         PASSWORD$                 Password of caller
  951.         PROGNAME$                 Name of DOOR (Programmer supplied)
  952.         RESPONSE$                 Returned after a CALL to IN.PUT
  953.       * SECONDS&                  Number of seconds since midnight
  954.                                   when caller entered the door.
  955.         SERIAL$                   Your DoorFrame serial #. String variable.
  956.       * SYSLOC$                   Location of system file. This contains the
  957.                                   path/filename of line 1 in the .CFG file.
  958.       * SYSOP%                    1 = SYSOP is using DOOR, 0 otherwise
  959.  
  960. NOTES: Variables marked with '*' are provided for information only.
  961.  
  962.  
  963. DOORFRAME v4.1 - Users Guide - Page 19
  964.  
  965.  
  966.       * SYSOPFIRST$               Sysops first name
  967.       * SYSOPLAST$                Sysops last name
  968.       * SYSOPNAME$                Sysops first and last names
  969.         SYSOPNEXT$                "TRUE" or "FALSE"
  970.         TIMEADJUST%               Use to adjust the callers remaining time
  971.                                   online. This variable adjusts the ELAPSED
  972.                                   time so if you wish to decrease his time,
  973.                                   give this a positive value.
  974.       * TIMEALWD%                 Minutes caller is allowed
  975.       * TIMELEFT%                 Time caller has left in minutes. Doorframe
  976.                                   calculates this so changing it has no effect
  977.       * TIMENOW%                  Current time in minutes (0 - 1440)
  978.         TIMEOUT%                  Programmer supplied. Defaults to 5 mins if
  979.                                   not specified. Has a minimum of one min.
  980.                                   No limit on maximum. 
  981.       * TIMEUSED%                 Time used so far today in minutes
  982.  
  983.         TOTAL.BYTES.TODAY&        BYTES downloaded so far today
  984.         TOTAL.KB.DL&              Total K bytes downloaded
  985.         TOTAL.KB.UL&              Total K bytes uploaded
  986.         UPLOADS&                  Number of uploads made
  987.       * USERNUM%                  Record number of caller
  988.  
  989. NOTES: Variables marked with '*' are provided for information only.
  990.  
  991. DOORFRAME v4.1 - Users Guide - Page 20
  992.  
  993.                    VARIABLES AVAILABLE WHEN USING CHAIN.TXT
  994.                    ========================================
  995.  
  996.         AGE$                      Caller's age
  997.         ALIAS$                    Callers alias/handle
  998.       * BBSSYS$                   Name of the BBS
  999.       * CALLSIGN$                 HAM radio call sign
  1000.         COLUMNS$                  Caller's screen width
  1001.       * COMPORT%                  COM port number (0 - 15).
  1002.         COSYSOP%                  1 if Caller is co-Sysop, 0 if not
  1003.       * DATADIR$                  System DATA directory
  1004.         DISPLAY%                  Local display status.    -1=ON, 0=OFF
  1005.         DOWNLOADS&                Number of downloads made
  1006.         EXENAME$                  Name of .EXE (Programmer supplied)
  1007.       * FIRST$                    Callers first name
  1008.       * GFILESDIR$                System GFILES directory
  1009.         GOLD$                     Caller's gold (?)
  1010.         GRAPHICS%                 Graphics mode status.    -1=ON, 0=OFF
  1011.                                   Determines if the caller is ANSI compatible
  1012.                                   Use DETECT.ANSI to determine this.
  1013.       * LAST$                     Callers last name
  1014.       * LASTON$                   Date caller last logged on (MM/DD/YY)
  1015.         LEVEL&                    Callers security level
  1016.       * LOCALUSR%                 -1 = LOCAL mode, 0 = Online
  1017.       * LOG$                      System LOG of the day
  1018.       * LOGONSECS&                Number of seconds since midnight
  1019.                                   when caller logged on to the BBS.
  1020.         MODE%                     0 = Non-color, -1 = color is on. Line 14
  1021.                                   of CHAIN.TXT determines this setting.
  1022.       * NAME$                     Callers full name
  1023.       * NODENUM%                  Defaults to 1 (not provided in CHAIN.TXT)
  1024.         OWNER$                    Name DoorFrame is registered to (if any).
  1025.         PAGELEN%                  Callers page length
  1026.         PARITY$                   "8N1" etc.
  1027.         PROGNAME$                 Name of DOOR (Programmer supplied)
  1028.         RESPONSE$                 Returned after a CALL to IN.PUT
  1029.         SERIAL$                   Your DoorFrame serial #. String variable.
  1030.         SEX$                      Callers sex
  1031.       * SYSLOC$                   Location of system file. This contains the
  1032.                                   path/filename of line 1 in the .CFG file.
  1033.       * SYSOP%                    1 = SYSOP is using DOOR, 0 otherwise
  1034.       * SYSOPFIRST$               Sysops first name
  1035.       * SYSOPLAST$                Sysops last name
  1036.       * SYSOPNAME$                Sysops first and last names
  1037.         TIMEADJUST%               Use to adjust the callers remaining time
  1038.                                   online. This variable adjusts the ELAPSED
  1039.                                   time so if you wish to decrease his time,
  1040.                                   give this a positive value.
  1041.       * TIMELEFT%                 Time caller has left in minutes. Doorframe
  1042.                                   calculates this so changing it has no effect
  1043.       * TIMENOW%                  Current time in minutes (0 - 1440)
  1044.         TIMEOUT%                  Programmer supplied. Default = 5 minutes.
  1045.       * TIMEUSED%                 Time used so far today in minutes
  1046.         TOTAL.KB.DL&              Total K bytes downloaded
  1047.         TOTAL.KB.UL&              Total K bytes uploaded
  1048.         UPLOADS&                  Number of uploads made
  1049.       * USERNUM%                  Record number of caller
  1050. NOTES: Variables marked with '*' are provided for information only.
  1051.  
  1052. DOORFRAME v4.1 - Users Guide - Page 21
  1053.  
  1054.                                 MISCELLANEOUS NOTES
  1055.                                 ===================
  1056.  
  1057. Check DFRAME.INC for an explanation of variables not listed above.
  1058.  
  1059. DoorFrame requires DOS 3.x and up since all files are opened in SHARED mode.
  1060.  
  1061. When using PCBOARD.SYS, DoorFrame also accesses the USERS file.
  1062.  
  1063. When using USERS.SYS, DoorFrame also accesses PCBOARD.SYS, PCBOARD.DAT and the 
  1064. USERS file.
  1065.  
  1066. The DOOR.SYS used by DoorFrame is the standard 52 line GAP (tm) file.
  1067.  
  1068. The CALLINFO.BBS used by DoorFrame currently contains 36 lines.
  1069.  
  1070. Trapping errors
  1071. ---------------
  1072.  If you wish to utilize the internal error trapping, insert the following
  1073.  line wherever you wish the trapping to begin. I would suggest putting it
  1074.  right after you call INITIALIZE.
  1075.    ON ERROR GOTO ERR.ROUTINE
  1076.  
  1077.  Then at the very end of your program insert the following:
  1078.    ERR.ROUTINE:
  1079.    ERRORS ERR, ERL
  1080.    END
  1081.  
  1082.  If ANY Basic error is encountered, it will branch to ERR.ROUTINE and call
  1083.  the ERRORS subroutine. The error will be printed to the screen and written
  1084.  to DFRAME.ERR. Your Door will then exit back to the BBS.
  1085.  
  1086. The first few lines of your Door should be:
  1087.    ' $INCLUDE: 'DFRAME.INC'
  1088.    PROGNAME$ = "Name of the Door"
  1089.    VERSION$ = " v1.0"
  1090.    EXENAME$ = "FILENAM"           <- NOTE: Max of 7 letters!
  1091.    TIMEOUT% = 240                 <- Numbers of seconds to wait for keyboard
  1092.                                      activity. 240 will wait for 4 minutes
  1093.                                      then send a Keyboard Timeout msg. and
  1094.                                      exit back to the BBS. Defaults to 300.
  1095.    OWNER$ = "Your Name"           <- For registered DoorFrame users only.
  1096.    SERIAL$ = "99999"              <- DoorFrame will display an EVALUATION
  1097.                                      COPY message until registered.
  1098.    INITIALIZE
  1099.    .
  1100.    .
  1101.    Your code.......
  1102.    .
  1103.    .
  1104.    MAKE.BLT HI.SCORE&            <- If you want one generated.
  1105.    SHOW.BLT                      <- If you want to show it before door closes.
  1106.    EXIT.DOOR "Y"
  1107.  
  1108. The configuration filename passed on the command line is OPENed as #1. This
  1109. file is left open so you may read additional lines from the .CNF file. 
  1110. Although it is not absolutely necessary, you should CLOSE #1 somewhere near
  1111. the start of your program.
  1112.  
  1113.  
  1114. DOORFRAME v4.1 - Users Guide - Page 22
  1115.  
  1116. Using SysopKeys%
  1117. ----------------
  1118. By setting SysopKeys% = 1 (any point after calling INITIALIZE), you can
  1119. utilize the arrow keys for remote input. This could be used for moving
  1120. highlight bars etc. (see the DFDEMO for an example).  Using the arrow keys
  1121. from remote can present difficulties because the terminal program the caller
  1122. is using may have redefined the arrow keys. Qmodem is a good example. Normally 
  1123. the up arrow in Qmodem activates the scroll back buffer. However, if you switch
  1124. Qmodem into DoorWay mode (ALT =), the arrow keys can be used. I do not know
  1125. if this is possible with other terminals (feedback anyone?).  If you do
  1126. utilize the arrow keys, you would be wise to provide an alternative method
  1127. of input for those callers who cannot use their arrow keys.
  1128.  
  1129. In addition, set Sysopkeys% = 1 only when arrow input is required then
  1130. immediately set SysopKeys% = 0 since capital H, K, M, and P are also
  1131. interpreted as arrow keys when SysopKeys% = 1.
  1132.  
  1133. Turning off the Status lines.
  1134. -----------------------------
  1135. If for some reason you do not want the 2 Status lines at the bottom of the
  1136. screen to show, you may blank those out at any time with the following.
  1137.  
  1138.  No.Status% = 1
  1139.  ClrScrn Black
  1140.  
  1141. To turn the Status lines back on just set No.Status% = 0.
  1142.  
  1143. Returning control to programmer upon carrier loss
  1144. -------------------------------------------------
  1145. There may be instances where the programmer needs to do some clean-up when
  1146. a loss of carrier occurs before returning to the BBS. There are two variables
  1147. that allow you to do this. After calling INITIALIZE, set Auto.Recycle% = 0.
  1148. If carrier is lost, the variable NoCarrier% is set equal to 1. One way to 
  1149. handle this is to check NoCarrier% after each In.Put, Enter, or More 
  1150. statement. If NoCarrier% = 1, your door will NOT stop for user input. For
  1151. example:
  1152.  
  1153.    In.Put 0, 0, 11, 0, 1, "Prompt > ", 10, 1, 1
  1154.    IF NoCarrier% = 1 THEN GOTO HandleIt
  1155.  
  1156. If the door was sitting at the In.Put prompt when carrier loss occurred, it
  1157. would immediately come out of it and process the next statement. You must be
  1158. VERY CAREFUL when using this option. Make sure you TEST IT THOROUGHLY!!!
  1159.  
  1160. After you have done your clean-up, be sure to call Exit.Door "Y" to terminate
  1161. the door as you normally would.
  1162.  
  1163. System.File% Variable
  1164. ---------------------
  1165. The value of System.File% will tell you which BBS file is being  used 
  1166. according to the following values:
  1167.  
  1168.         1 = PCBOARD.SYS                    6 = DORINFOx.DEF
  1169.         2 = USERS.SYS                      7 = SFDOORS.DAT                    
  1170.         3 = DOOR.SYS                       8 = USERINFO.DAT
  1171.         4 = CALLINFO.BBS                   9 = GTUSER.BBS
  1172.         5 = CHAIN.TXT                     10 = TRIBBS.SYS
  1173.  
  1174.  
  1175. DOORFRAME v4.1 - Users Guide - Page 23
  1176.  
  1177. Fossil Driver Support
  1178. ---------------------
  1179. DoorFrame supports the use of Fossil drivers.  To tell your Door to use the
  1180. Fossil driver instead of the standard COM ports, just put /FD on the command
  1181. line when running the door. For example:
  1182.      MYDOOR MYDOOR.CFG /FD
  1183. indicates that a Fossil driver is present and should be used. If no Fossil
  1184. driver is detected, DoorFrame will print a message to that effect and exit
  1185. the door gracefully.
  1186.  
  1187. Environment Variables
  1188. ---------------------
  1189. DoorFrame supports COM 1-4 on the standard IRQ's - COM1/COM3 = IRQ4 and
  1190. COM2/COM4 = IRQ3. If you wish to use a non-standard IRQ, add the IRQ
  1191. number after the configuration filename. Let's assume your Door is
  1192. called FOOBAR and you want to use COM1 and IRQ5. The command line
  1193. passed to your Door would be:
  1194.     FOOBAR FOOBAR.CFG /5  or
  1195.     FOOBAR FOOBAR.CFG /%IRQ%  for the environment variable.
  1196. The /5 tells DoorFrame to use IRQ5 rather than the standard IRQ4 that
  1197. is normally used with COM1. No /x parameter is needed for the standard IRQ's.
  1198.  
  1199. When specifying the location of the system file on line 1 of the doors .CFG
  1200. file, you may use the environment variables %pcbdrive%, %pcbdir%, %pcbnode%,
  1201. and %wcnodeid%. Some examples:
  1202.  PCBoard: 
  1203.    USERS.SYS in C:\PCB           - %pcbdrive%%pcbdir%\USERS.SYS
  1204.    USERS.SYS in C:\PCB\NODE1     - %pcbdrive%%pcbdir%\NODE%pcbnode%\USERS.SYS
  1205.  
  1206.  Wildcat!:
  1207.    USERINFO.DAT in C:\WC\NODE1   - C:\WC\NODE%wcnodeid%
  1208.  
  1209. Non-PCBoard systems may use the PCB environment variables by setting them
  1210. in either AUTOEXEC.BAT or in the batch that runs the door. For example:
  1211.  SET PCBDRIVE=C:
  1212.  SET PCBDIR=\BBSDIR
  1213.  SET PCBNODE=1
  1214.  
  1215.